package com.tg.app.view;


import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Path;
import android.util.AttributeSet;
import android.webkit.WebView;

import com.tange.base.toolkit.DimenUtil;


public class RoundWebview extends WebView {
    float width,height =0;
    private int radius =0;
    public RoundWebview(Context context) {
        super(context);//此处必需引用父控件的构造方法，以使用父控件的主题，否则会造成键盘的一些问题（具体的忘记了，大家可以试试）
    }
    public RoundWebview(Context context, AttributeSet attrs) {
        super(context, attrs);//此处必需引用父控件的构造方法，以使用父控件的主题，否则会造成键盘的一些问题（具体的忘记了，大家可以试试）
    }
    public RoundWebview(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);//此处必需引用父控件的构造方法，以使用父控件的主题，否则会造成键盘的一些问题（具体的忘记了，大家可以试试）
    }
    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
        super.onLayout(changed, left, top, right, bottom);
        width = getWidth();
        height = getHeight();

    }
    public void setRadius(int radius) {
        this.radius = radius;
        invalidate();
    }
    @Override
    protected void onDraw(Canvas canvas) {
        float y =this.getScrollY();//因为webview是可滚动的，所以它的高度是变化的，每个height地方都需要加上滚动值。不加的话控件的高度不能变更，此圆角构成方法适用于其他的控件，如Imageview，此时无需加y.
        int r = DimenUtil.dp2px(getContext(),radius);
        if (width > r &&height > r) {
            Path path = new Path();
            path.moveTo(r, 0);
            path.lineTo(width - r, 0);
            path.quadTo(width, 0, width, r);
            path.lineTo(width,y+ height - r);//1,r改为0
            path.quadTo(width, y+ height, width - r, y+ height); //2,r改为0
            path.lineTo(r, y+ height);//3,r改为0
            path.quadTo(0, height, 0, y+ height - r); //4,r改为0  这四处r改为0即可实现上左上右为圆角，否则四角皆为圆角
            path.lineTo(0, r);
            path.quadTo(0, 0, r, 0);
            if(r >0) {
                canvas.clipPath(path);//将路径闭合构成控件的区域
            }
        }
        super.onDraw(canvas);
    }
}
